來到了第二天,作為系列的正式開始,當然要討論一下經典的 Hello World 囉~
相信大多數人在一開始學習程式語言時除了安裝編程工具與設定環境外最初看到的教學都會是顯示 Hello World 或是類似的用字(如 Hello [教學的程式語言]、Hello [人名]等)的。因為大部分的教學文章都是從顯示 Hello World 這一句文字開始,以下是其中一些教學的例子:
從上面的例子可以看到,很多的程式語言教學都會以顯示 Hello World 這一句文字為教學的起點,可是為什麼大家都那麼執著於這一句 Hello World 呢?
首先,我們可以先了解一下 Hello World 這句子是哪裡來的。Hello World 最初是來自 1972 年布萊恩·柯林漢針對當時所使用的 B 語言的實驗室內部教學檔案《A Tutorial Introduction to the Language B》。而真正讓 Hello World 變得有名則是因為他被收錄在布萊恩·柯林漢與丹尼斯·里奇在 1978年針對當時很受歡迎的程式語言 C 語言所出版的《C程式設計語言》一書中。《C程式設計語言》由於它清晰簡潔的教學,在當時被認為是 C 語言的業界標準規範,後來也被稱為電腦技術著作的典範,也因此後來很多的程式語言教學文章會以這書中的第一個教學範例,也就是 Hello World,作為自身的第一個教學範例以示致敬。
不過,Hello World 這一個教學範例當然也不只是致敬那麼簡單,我們會發現即使在程式語言的教學文章中並沒有使用 Hello World,他們的第一個教學範例還是會以顯示一段文字為主,從這一點中我們便可以知道這個教學範例是有意義的。我認為 Hello World 的教學範例有以下的用途或意義:
1. 用來快速的檢查一遍使用者是否正確安裝並設定編程的工具及環境
由於只是顯示一段文字的程式碼大多都很簡短,因此新手也可以很輕鬆的跟著教學把程式碼打出來並運行。如果運行的結果跟教學的一模一樣,那就代表了那位使用者有很大的可能正確的安裝並設定編程的工具及環境,因此他可以開始正式的學習該程式語言。如果運行的結果有問題,那位使用者也因為程式碼很簡短,可以比較容易發現並解決出現問題,例如重新安裝一次工具或是檢查一下有沒有打錯字等。
2. 一份給剛接觸程式設計的新手們「看得見」的鼓勵及安心感
大部分的程式碼其實在運作時是沒辦法被看見的,像是我們讓一個程式去計算 1 + 1,如果我們沒有使用額外的程式碼把結果顯示出來的話,我們在程式運作完後也不會知道它的計算結果是什麼。而這個「不知道」便會為剛接觸程式設計、還不習慣的新手們帶來了一份懷疑自己的程式碼是否正確的不安感。因此,透過 Hello World,從一開始我們便學會如果在電腦螢幕上把東西顯示出來,便減少了這份「不知道」的不安感。
3. 為轉換語言的老手們簡單介紹該語言的基本架構與特性
Hello World 的教學範例雖然簡單,但他也包含了所有該程式語言運行時所需要的東西,可謂是「麻雀雖小,五臟俱全」。
以 C# 為例子,雖然顯示文字的程式碼只有一句,但想要順利運行程式,卻需要加上「其他的部分」:
using System;
namespace FirstTutorial {
class HelloWorld {
static void Main(string[] args) {
Console.WriteLine("Hello World!");
}
}
}
同時,也有些程式語言不一定有「其他的部分」,以 Python 為例子,顯示文字的程式便真的只有一句:
print('Hello World!')
透過 Hello World 的教學範例,擁有一定程式設計能力的老手們便可以很快速的了解到這個語言的基本架構與特性,如上述例子中,C# 有著 namespace 跟 class 的架構、而 Python 的語法則強調著它的簡潔與方便。
因此,Hello World 的教學範例無論是對剛接觸程式設計的新手們還是剛轉換語言的老手們來說,都是一份非常有意義的入門指引。